package cn.tedu.charging.order.mapper;

import cn.tedu.charging.order.pojo.po.StudentEsPO;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;

import java.util.Date;
import java.util.List;

/**
 * 类似mybatis-plus中的mapper接口,这个repository是专门
 * 用来操作读写studentEsPo文档对象的客户端,整合springboot和es的时候 满足
 * 1. 继承es的提供的父接口ElasticsearchRepository
 * 2. 定义泛型<Doc,Id> doc指的就是封装文档的studentEsPO类,Id指的就是在
 * 类中@Id定义的属性类型
 */
public interface StudentEsRepository extends ElasticsearchRepository<StudentEsPO, String> {
    //根据方法派生命令和传参规则,自定义查询方法
    List<StudentEsPO> findByName(String name);
    //使用名称或者年龄查询用户
    List<StudentEsPO> findByNameOrAge(String name,Integer age);
    //查询名称或者年龄小于一个数值的学生
    List<StudentEsPO> findByNameOrAgeLessThan(String name,Integer age);
    //查询一组Name值对应的学生
    List<StudentEsPO> findByNameIn(List<String> names);
    //查询一个在特定日期之前生日的学生
    List<StudentEsPO> findByBirthdayBefore(Date now);
    //使用日期查询某个时间之前的学生,同时使用年龄排序倒序
    List<StudentEsPO> findByBirthdayBeforeOrderByAgeDesc(Date now);
    //使用address地址做包含查询
    List<StudentEsPO> findByAddressLike(String address);
}
